# -*- coding: utf-8 -*-

import numpy as np

'''
最值归一化 Normalization
'''
x = np.random.randint( 0, 100, 100 )

x = ( x - np.min( x ) ) / ( np.max( x ) - np.min( x ) )

X = np.random.randint( 0, 100, ( 50, 2 ) )
X = np.array( X, dtype = float )
X[:, 0] = (X[:, 0] - np.min( X[:, 0] )) / ( np.max( X[:, 0] ) - np.min( X[:, 0] ) )
X[:, 1] = (X[:, 1] - np.min( X[:, 1] )) / ( np.max( X[:, 1] ) - np.min( X[:, 1] ) )
print( np.std(X[:, 0]  ) )

'''
方差均值归一化 Standardization ( 推荐使用方法 )
本质思想：将所有数据的均值点，放在了0的位置，方差放在了1的位置上，
    即使有极端值，也会这样分布，这点要比最值归一化方法要好。
'''
X2 = np.random.randint( 0, 100, ( 50, 2 ) )
X2 = np.array( X2, dtype = float )

X2[ :, 0 ] = ( X2[ :, 0 ] - np.mean( X2[ :, 0 ] ) ) / np.std( X2[ :, 0 ] )
X2[ :, 1 ] = ( X2[ :, 1 ] - np.mean( X2[ :, 1 ] ) ) / np.std( X2[ :, 1 ] )
print( np.mean( X2[ :, 0 ] ) )
